package com.example.design.pattern.behavior.strategy;

import java.util.HashMap;
import java.util.Map;

import com.example.design.pattern.behavior.strategy.impl.AlipayPayStrategy;
import com.example.design.pattern.behavior.strategy.impl.WeixinPayStrategy;

public class PayService {

    private static final Map<String, PayStrategy> PAY_STRATEGY_MAP = new HashMap<String, PayStrategy>();
    
    //spring的话，取bean
    static {
        AlipayPayStrategy alipayPayStrategy = new AlipayPayStrategy();
        PAY_STRATEGY_MAP.put(alipayPayStrategy.getType(), alipayPayStrategy);
        
        WeixinPayStrategy weixinPayStrategy = new WeixinPayStrategy();
        PAY_STRATEGY_MAP.put(weixinPayStrategy.getType(), weixinPayStrategy);
    }
    
    public void pay(String payType, Object paramObject) {
        PAY_STRATEGY_MAP.get(payType).pay(paramObject);
    }
}
